home *** CD-ROM | disk | FTP | other *** search
/ Zine 7 / Zine - Issue 07 (1990-10)(Brainstorm).adf / Memsearch.s next >
Text File  |  2022-11-05  |  13KB  |  784 lines

  1.  
  2. ; ****************************************************
  3. ; *****                                          *****
  4. ; *****                MemSearch                 *****
  5. ; *****              ------------                *****
  6. ; *****                                          *****
  7. ; *****      By :   Orlando Budelacci            *****
  8. ; *****             Birmannsgasse 34             *****
  9. ; *****             CH-4055 Basel                *****
  10. ; *****             Switzerland                  *****
  11. ; *****                                          *****
  12. ; *****   Comments and contributions welcomed!   *****
  13. ; *****                                          *****
  14. ; ****************************************************
  15.  
  16. ; ---------- Note -----------
  17.  
  18. ; *** Object file MUST have chip hunks !
  19. ; *** Else it WON'T work on computers with fast memory !!!!!!!!
  20.  
  21. ; *** THE PROGRAM ISN'T STARTABLE FROM THE ASSEMBLER
  22. ; *** BECAUSE OF THE TEXTOUTPUT, SO SAVE THE EXECUTABLE
  23. ; *** AND HAVE A LOOK AT IT THEN...
  24.  
  25. ; Written with Masterseka
  26.  
  27. ; ---------- Versions --------
  28.  
  29. ; *** Version V1.01 finished May, 17th 1990
  30. ; *** 100% pc-relative
  31.  
  32. ; ----------------------------------------------------------------
  33.  
  34. ; *** Start of program ***
  35.  
  36. start:
  37.  
  38. ; *** AllocMem for the info board ***
  39.  
  40.     move.l    4.w,a6
  41.     move.l    #80*28,d0        ;size ? 28 lines/hires
  42.     move.l    #$10002,d1        ;type
  43.     jsr    -198(a6)    
  44.     lea    memadr(pc),a2
  45.     move.l    d0,(a2)
  46.     bne.s    alloc_rastport_mem
  47.     rts
  48.  
  49. ; *** Alloc rastport memory ***
  50. ; *** Pointer to rastport in label : 'rastport' ***
  51.  
  52. alloc_rastport_mem:
  53.     moveq    #100,d0            ;size ? 28 lines/hires
  54.     move.l    #$10002,d1        ;type / chip / clear
  55.     jsr    -198(a6)    
  56.     lea    rastport(pc),a2
  57.     move.l    d0,(a2)
  58.     bne.s    open_dos
  59.     bra.L    freemem            ;if error while allocating
  60.                     ;rastport mem, then
  61.                     ;free status line memory
  62.  
  63. ; *** open dos ***
  64.  
  65. open_dos:    
  66.     lea    dosname(pc),a1
  67.     jsr    -408(a6)    
  68.     lea    dosbase(pc),a2
  69.     move.l    d0,(a2)
  70.     
  71. ; *** Put start/end addresses *** 
  72.  
  73.     lea    madr2(pc),a1
  74.     move.l    memadr(pc),d2
  75.     add.l    #[80*28],d2
  76.     bsr.L    long_to_ascii
  77.  
  78.     lea    madr(pc),a1
  79.     move.l    memadr(pc),d2
  80.     bsr.L    long_to_ascii
  81.  
  82. ; *** Get output window ***
  83. ; *** you get : output handle  in label 'outhandle'
  84.  
  85. get_out_put:
  86.     move.l    dosbase(pc),a6
  87.     jsr    -60(a6)            ;OutPut
  88.     lea    outhandle(pc),a3
  89.     move.l    d0,(a3)
  90.  
  91.     lea    help(pc),a2
  92.     move.l    a2,d2
  93.     move.l    #helpend-help,d3
  94.     jsr    -48(a6)
  95.  
  96. ; *** Wait return to start ***
  97.  
  98.     move.l    outhandle(pc),d1
  99.     jsr    -42(a6)            ;Read    
  100.  
  101. ; *** forbid ***
  102.  
  103. forbid:
  104.     move.l    4.w,a6
  105.     jsr    -132(a6)
  106.  
  107. ; *** Set copper bpl's to allocated memory ***
  108.  
  109.     lea    tab_location+2(pc),a0
  110.     move.l    memadr(pc),d1
  111.     swap    d1
  112.     move.w    d1,(a0)
  113.     addq.w    #4,a0
  114.     swap    d1
  115.     move.w    d1,(a0)
  116.  
  117. ; *** Set up system things ***
  118.  
  119. init_system:
  120.     lea    gfxname(pc),a1
  121.     jsr    -408(a6)    
  122.     lea    gfxbase(pc),a2
  123.     move.l    d0,(a2)
  124.  
  125. init_bitmap:
  126.     move.l    gfxbase(pc),a6
  127.     lea    bitmap(pc),a0
  128.     moveq    #1,d0
  129.     move.l    #640,d1
  130.     moveq    #28,d2
  131.     jsr    -390(a6)
  132.     lea    bitmap+8(pc),a2        ;Initbitmap
  133.     move.l    memadr(pc),(a2)
  134.  
  135. initrastport:
  136.     move.l    rastport(pc),a1        ;InitRastport
  137.     jsr    -198(a6)
  138.     
  139.     move.l    rastport(pc),a5
  140.     lea    bitmap(pc),a3
  141.     move.l    a3,4(a5)
  142.  
  143. ; *** Insert correct pointer to fontname in the txtstruc ***
  144.  
  145.     lea    txtstruc(pc),a0
  146.     lea    fontname(pc),a1
  147.     move.l    a1,(a0)
  148.  
  149. open_font:
  150.     lea    txtstruc(pc),a0
  151.     jsr    -72(a6)            ;OpenFont
  152.     move.l    d0,a0
  153.     move.l    rastport(pc),a1
  154.     jsr    -66(a6)            ;SetFont
  155.  
  156. moverast:
  157.     move.l    rastport(pc),a1
  158.     moveq    #20,d0
  159.     moveq    #10,d1
  160.     jsr    -240(a6)
  161.  
  162. ext:
  163.     move.l    #textend-text,d0
  164.     move.l     rastport(pc),a1
  165.     lea    text(pc),a0
  166.     jsr    -60(a6)            ;Text
  167.  
  168. ; *** Start displaying ***
  169.  
  170. start_copper:
  171.     lea    copper(pc),a2
  172.     move.l    a2,$dff080
  173.  
  174. ; *** Start interrupt ***
  175.  
  176. start_int:
  177.     lea    intvec(pc),a2
  178.     move.l    $6c,(a2)
  179.     lea    int(pc),a2
  180.     move.l    a2,$6c
  181.  
  182. mouse:
  183.     bsr.L    fkeys
  184.     lea    endflag(pc),a2
  185.     tst.b    (a2)
  186.     bne.s    close_all
  187.  
  188.     btst    #6,$bfe001
  189.     bne.s    mouse
  190.     
  191. Close_all:
  192.     move.l    gfxbase(pc),a0
  193.     lea    $dff000,a3
  194.     move.l    38(a0),$80(a3)
  195.     move.w    #$83f0,$96(a3)
  196.     lea    intvec(pc),a2
  197.     move.l    (a2),$6c
  198.  
  199. close_gfx:
  200.     move.l    4.w,a6
  201.     move.l    gfxbase(pc),a1
  202.     jsr    -414(a6)    
  203.  
  204. close_dos:
  205.     move.l    dosbase(pc),a1
  206.     jsr    -414(a6)
  207.  
  208. permit:
  209.     move.l    4.w,a6
  210.     jsr    -138(a6)
  211. freemem:            ;bitplane
  212.     move.l    memadr(pc),a1
  213.     move.l    #80*28,d0        ;size 28 lines /hires
  214.     jsr    -210(a6)
  215.  
  216. end:
  217.     moveq    #0,d0
  218.     rts
  219.  
  220. ; *** Interrupt ***
  221.  
  222. int:
  223.     movem.l    d0-d7/a0-a6,-(sp)
  224.  
  225. ; *** Make longword from 2 words at bpl position ***
  226.  
  227. makelo:    lea    bpl(pc),a1
  228.     bsr.L    create_longword        ;save longword in 
  229.                     ;pointer longword
  230. ; *** $000000 to $7ffff ***
  231.  
  232.     lea    longadr(pc),a3
  233.     move.l    (a3),d0
  234.     move.l    speed(pc),d1
  235.     cmp.l    d1,d0                
  236.     blo.s    low            ;branch if lower
  237.     move.l    #$7ffff,d2
  238.     sub.l    d1,d2
  239.     cmp.l    d2,d0
  240.     bhi.s    high            ;branch if higher
  241.     bra.s    keys
  242. low:
  243.     move.l    #$7ffff-961,(a3)
  244.     bra.s    keys
  245. high:
  246.     move.l    #$0+961,(a3)
  247.  
  248. ; *** Key test ***
  249.  
  250. keys:
  251.     move.b    $bfec01,d0        
  252.     move.l    speed(pc),d5
  253.     lea    longadr(pc),a3
  254.     lea    statusflag(pc),a4
  255.     lea    modtext(pc),a5
  256.  
  257.     cmp.b    #$65,d0        
  258.     beq.s    down
  259.     cmp.b    #$67,d0
  260.     beq.s    up
  261.     cmp.b    #$63,d0
  262.     beq.s    right
  263.     cmp.b    #$61,d0
  264.     beq.s    left
  265.     cmp.b    #$33,d0
  266.     beq.L    moduloUp
  267.     cmp.b    #$37,d0
  268.     beq.L    ModuloDown    
  269.  
  270.     bra.s    exit    
  271.  
  272. down:
  273.     add.l    d5,(a3)
  274.     bra.s    exit
  275.  
  276. right:
  277.     addq.l    #2,(a3)
  278.     bra.s    exit
  279. left:
  280.     subq.l    #2,(a3)
  281.     bra.s    exit
  282.  
  283. up:
  284.     sub.l    d5,(a3)
  285.  
  286. exit:    
  287.  
  288. ; *** recalculate longword in two words for copper list ***
  289.  
  290.     move.l    longadr(pc),d2
  291.     bsr.L    make_words
  292.     lea    numtext(pc),a1
  293.  
  294. ; *** Address is in d2 / calculate ascii values 
  295. ; *** and write them into 'num' ***
  296.  
  297.     bsr.L    long_to_ascii
  298.  
  299. ; *** Move rastport to correct position ***
  300.  
  301.     move.l    gfxbase(pc),a6
  302.     move.l    rastport(pc),a1
  303.     move.l    #572,d0
  304.     moveq    #10,d1
  305.     jsr    -240(a6)
  306.  
  307. ; *** Print contents of pointer 'longadr' ***
  308.  
  309.     move.l    #numtextend-numtext,d0
  310.     move.l    rastport(pc),a1
  311.     lea    numtext(pc),a0
  312.     jsr    -60(a6)            ;Text
  313.  
  314. ; *** Restore status line ? ***
  315.  
  316.     lea    statusflag(pc),a2
  317.     cmp.b    #1,(a2)
  318.     bne.s    endi
  319.  
  320. ; *** Status line / move rastport ***
  321.  
  322.     move.l    rastport(pc),a1
  323.     moveq    #20,d0
  324.     moveq    #20,d1
  325.     jsr    -240(a6)
  326.  
  327. ; *** Print status line ***
  328.  
  329.     move.l    #infotextend-infotext,d0
  330.     move.l    rastport(pc),a1
  331.     lea    infotext(pc),a0
  332.     jsr    -60(a6)            ;Text
  333.     lea    statusflag(pc),a2
  334.     clr.b    (a2)
  335.  
  336. ; *** End of interrupt ***
  337.  
  338. endi:    
  339.     movem.l    (sp)+,d0-d7/a0-a6    
  340.     dc.w    $4ef9
  341.  
  342. intvec:dc.l    0
  343.  
  344. ; *** Subroutines ***
  345.  
  346.  
  347. ; *** Display help text ***
  348.  
  349. helpME:
  350.  
  351. end_interrupt:
  352.     move.l    intvec(pc),$6c
  353.     lea    $dff000,a5
  354.  
  355.     move.w    #$8020,$96(a5)
  356.     move.l    4.w,a6
  357.     jsr    -138(a6)
  358.  
  359.     lea    gfxname(pc),a1
  360.     jsr    -408(a6)
  361.     move.l    d0,a0
  362.     move.l    38(a0),$80(a5)
  363.  
  364.     move.l    dosbase(pc),a6
  365.     move.l    outhandle(pc),d1
  366.     lea    helptext(pc),a2
  367.     move.l    a2,d2
  368.     move.l    #Helptextend-helptext,d3
  369.     jsr    -48(a6)
  370.  
  371.     move.l    outhandle(pc),d1
  372.     jsr    -42(a6)            ;Read
  373.  
  374.     move.l    4.w,a6
  375.     jsr    -132(a6)
  376.  
  377.     lea    intvec(pc),a2
  378.     move.l    $6c,(a2)
  379.     lea    int(pc),a2
  380.     move.l    a2,$6c
  381.  
  382.     move.w    #$0020,$96(a5)
  383.  
  384.     lea    copper(pc),a2
  385.     move.l    a2,$80(a5)
  386.     rts
  387.  
  388. ; *** Longword to ascci-string ***
  389.  
  390. ; *** Values  :   a1 = pointer to destination
  391. ;          d2 = source
  392.  
  393. long_to_ascii:
  394.     moveq    #7,d1
  395.  
  396. asciiloop1:
  397.     rol.l    #4,d2
  398.     move.l    d2,d3
  399.     and.b    #15,d3
  400.     add.b    #$30,d3
  401.     cmp.b    #$3a,d3
  402.     bcs.s    asciiloop2
  403.     addq.b    #7,d3
  404. asciiloop2:
  405.     move.b    d3,(a1)+
  406.     dbra    d1,asciiloop1
  407.     add.l    #20,a1
  408.     rts
  409.  
  410. ; *** Create longword from 4 words ***
  411.  
  412. ; *** Values  :    a1 = pointer to begin of 4 words
  413.  
  414.  
  415. ; *** You get :    longword in label 'longadr'
  416.  
  417. create_longword:
  418.     addq.w    #2,a1
  419.     move.w    (a1),d5
  420.     swap    d5
  421.     addq.w    #4,a1
  422.     move.w    (a1),d5
  423.     lea    longadr(pc),a1
  424.     move.l    d5,(a1)
  425.     rts
  426.  
  427. ; *** Make longword for 4 copper words ***
  428.  
  429. ; *** values  :   a1 = pointer to bpl
  430. ;          d2 = what to put in bpl
  431.  
  432. ; *** You get :   longword in 2 words at bpl in copper-list1
  433.  
  434. make_words:
  435.     lea    bpl(pc),a1
  436.     addq.w    #2,a1
  437.     swap    d2        
  438.     move.w    d2,(a1)
  439.     addq.w    #4,a1
  440.     swap    d2
  441.     move.w    d2,(a1)
  442.     rts
  443.  
  444. ; *** Put text in current window ***
  445.  
  446. ; *** You give  : d2 = pointer to text 
  447. ;          d3 = lenght of text 
  448.  
  449. ; *** you get   : text in current window 
  450.  
  451. text_dos:
  452.     move.l    dosbase(pc),a6
  453.     move.l    outhandle(pc),d1
  454.     jmp    -48(a6)        ;Write
  455.  
  456. ; *** Test function keys ***
  457.  
  458. fkeys:
  459.     move.b    $bfec01,d0
  460.     lea    infotext+19(pc),a0
  461.     lea    statusflag(pc),a4
  462.     lea    speed(pc),a5
  463.     lea    bplcon0+2(pc),a3
  464.     lea    color+2(pc),a2
  465.  
  466.     cmp.b    #$5f,d0
  467.     beq.L    speed1    
  468.     cmp.b    #$5d,d0
  469.     beq.L    speed2    
  470.     cmp.b    #$5b,d0
  471.     beq.L    speed3    
  472.     cmp.b    #$59,d0
  473.     beq.L    speed4    
  474.     cmp.b    #$57,d0
  475.     beq.L    speed5    
  476.     cmp.b    #$55,d0
  477.     beq.L    LoRes    
  478.     cmp.b    #$53,d0
  479.     beq.L    Hires
  480.     cmp.b    #$51,d0
  481.     beq.L    address1
  482.     cmp.b    #$4f,d0
  483.     beq.L    address2
  484.     cmp.b    #$4d,d0
  485.     beq.L    color1
  486.     cmp.b    #$3f,d0
  487.     bne.s    test_help
  488.     lea    modulo+2(pc),a6
  489.     lea    modtext(pc),a5
  490.     move.w    #$0000,(a6)
  491.     move.b    #'0',(a5)+
  492.     move.b    #'0',(a5)+
  493.     move.b    #'0',(a5)+
  494.     move.b    #'0',(a5)
  495.     move.b    #1,(a4)        ;refresh beam
  496.  
  497. test_help:
  498.     cmp.b    #$41,d0
  499.     beq.L    helpME
  500.     cmp.b    #$75,d0
  501.     bne.s    fkeys_fertig
  502.     lea    endflag(pc),a1
  503.     move.b    #1,(a1)
  504.  
  505. fkeys_fertig:
  506.     rts
  507.  
  508. ; *** The different speeds ***
  509. ; *** Pointer to statusflag in a4
  510. ; *** Pointer to speed in a5
  511.     
  512. speed1:    
  513.     move.b    #'1',(a0)
  514.     move.l    #80,(a5)
  515.     move.b    #1,(a4)
  516.     rts
  517.  
  518. speed2:
  519.     move.b    #'2',(a0)
  520.     move.l    #160,(a5)
  521.     move.b    #1,(a4)
  522.     rts
  523. speed3:
  524.     move.b    #'3',(a0)
  525.     move.l    #240,(a5)
  526.     move.b    #1,(a4)
  527.     rts
  528.  
  529. speed4:
  530.     move.b    #'4',(a0)
  531.     move.l    #480,(a5)
  532.     move.b    #1,(a4)
  533.     rts
  534.  
  535. speed5:
  536.     move.b    #'5',(a0)
  537.     move.l    #960,(a5)
  538.     move.b    #1,(a4)
  539.     rts
  540.     
  541. ; *** Change resolution ***
  542. ; *** Pointer to bplcon0+2 in a3
  543. ; *** Pointer to statusfalg in a4
  544. ; *** Pointer to color+2 in a2
  545.  
  546. LoRes:        
  547.     move.w    #$1200,(a3)    
  548.     lea    infotext+32(pc),a0
  549.     move.b    #'L',(a0)+
  550.     move.b    #'o',(a0)
  551.     move.b    #1,(a4)
  552.     rts
  553.  
  554. Hires:
  555.     move.w    #$9200,(a3)
  556.     lea    infotext+32(pc),a0
  557.     move.b    #'H',(a0)+
  558.     move.b    #'i',(a0)
  559.     move.b    #1,(a4)
  560.     rts
  561.  
  562. address1:
  563.     move.l    #$20000,d2
  564.     bsr.L    make_words
  565.     rts
  566.  
  567. address2:
  568.     move.l    #$65000,d2
  569.     bsr.L    make_words
  570.     rts
  571.  
  572. ; *** Insert new color ****
  573.  
  574. Color1:
  575.     clr.b    $bfec01
  576.     lea    infotext+52(pc),a0
  577.     lea    colorcount(pc),a5
  578.     addq.b    #1,(a5)
  579.     cmp.b    #1,(a5)
  580.     beq.s    green
  581.  
  582.     cmp.b    #2,(a5)
  583.     beq.s    blue
  584.  
  585.     cmp.b    #3,(a5)
  586.     beq.s    white
  587.  
  588. Green:
  589.     move.b    #'4',(a0)+
  590.     move.b    #'a',(a0)+
  591.     move.b    #'4',(a0)
  592.     move.b    #1,(a4)
  593.     move.w    #$04a4,(a2)
  594.     rts
  595.  
  596. White:
  597.     move.b    #'a',(a0)+
  598.     move.b    #'a',(a0)+
  599.     move.b    #'a',(a0)
  600.     move.b    #1,(a4)
  601.     move.w    #$0aaa,(a2)
  602.     clr.b    (a5)
  603.     rts
  604.  
  605. Blue:
  606.     move.b    #'7',(a0)+
  607.     move.b    #'7',(a0)+
  608.     move.b    #'f',(a0)
  609.     move.b    #1,(a4)
  610.     move.w    #$055f,(a2)
  611.     rts
  612.  
  613.  
  614. ; *** The modulo value change routine ***
  615. ; *** a5 = pointer to modtext
  616. ; *** a4 = pointer to statusflag
  617.  
  618. ModuloUp:
  619.     lea    modulo+2(pc),a1
  620.     lea    modcounter(pc),a0
  621.     cmp.b    #7,(a0)    
  622.     bne.s    goback
  623.     addq.w    #$0002,(a1)
  624.     
  625. ; *** Display ascii value of modulo ***
  626.  
  627.     moveq    #3,d1            ;4 chars
  628.     move.l    (a1),d2            ;value to display
  629.     lea    modtext(pc),a1
  630.     bsr.L    asciiloop1        ;bin to ascii
  631.     move.b    #1,(a4)            ;set status flag / 
  632.     clr.b    (a0)
  633.  
  634. goBACK:    
  635.     addq.b    #1,(a0)
  636.     bra.L    exit
  637.  
  638. ModuloDown:
  639.     lea    modulo+2(pc),a1
  640.     lea    modcounter2(pc),a0
  641.  
  642.     cmp.b    #10,(a0)    
  643.     bne.s    goback2
  644.     subq.w    #$0002,(a1)
  645.     clr.b    (a0)
  646.  
  647. ; *** Insert ascii value in status line ***
  648.  
  649.     moveq    #3,d1            ;4 chars
  650.     move.l    (a1),d2            ;pointer to source (modtext)
  651.     lea    modtext(pc),a1
  652.     bsr.L    asciiloop1        ;bin to ascii
  653.     move.b    #1,(a4)            ;set status flag / 
  654.     clr.b    (a0)
  655.  
  656. goBACK2:
  657.     addq.b    #1,(a0)
  658.     bra.L    exit
  659.  
  660. ; -------------------- The copper list --------------------
  661.  
  662. copper:
  663.     dc.w    $0096,$0020
  664.     dc.w    $0102,$0000
  665.     dc.w    $008e,$2c81
  666.     dc.w    $0090,$2cc1
  667.     dc.w    $0092,$0038
  668.     dc.w    $0094,$00d0
  669.     dc.w    $0180,$0000
  670.     dc.w    $0108,$0000
  671.  
  672. tab_location:
  673.     dc.w    $00e0,$0007
  674.     dc.w    $00e2,$0000
  675.     dc.w    $0100,$9200
  676.  
  677. ; *** Beam at bottom of screen ***
  678.  
  679.     dc.w    $0182,$0aaf
  680.     dc.w    $2c11,$fffe,$0180,$0009
  681.     dc.w    $2f11,$fffe,$0180,$000b
  682.  
  683.     dc.w    $4311,$fffe,$0180,$0009
  684.     dc.w    $4611,$fffe,$0180,$0000
  685. color:    dc.w    $0182,$0aaa
  686.  
  687. ; *** Start location of plane ***
  688.  
  689. bpl:    dc.w    $00e0,$0006
  690.     dc.w    $00e2,$0000
  691.  
  692. modulo:    dc.w    $0108,$0000
  693.  
  694. bplcon0:dc.w    $0100,$9200
  695.  
  696.     dc.w    $ffff,$fffe
  697.  
  698. ; *** Text / Datas ***
  699.  
  700. text:    dc.b    'MemSearch V1.01 /  1990 by Orlando B. /  '
  701.     dc.b    'Current address position : $'
  702. textend:
  703. numtext:dc.b    '00000000'
  704. numtextend:
  705.  
  706. infotext:
  707. dc.b    'STATUS :  Speed : 04  /  Mode : HiRes  /  Color : $0aaa  /'
  708. dc.b    '  Modulo : $'
  709. modtext:
  710. dc.b    '0000'
  711. modtextend:
  712. infotextend:
  713.  
  714. ; *** System things ***
  715.  
  716. gfxname:    dc.b    'graphics.library',0
  717.         even
  718. gfxbase:    dc.l    0
  719. bitmap:        blk.b    16,0
  720. rastport:    dc.l    0
  721.  
  722. ; *** Things for address display ***
  723.  
  724. longadr:    dc.l    0
  725. memadr:        dc.l    0
  726. speed:        dc.l    480
  727.  
  728. txtstruc:
  729.     dc.l    0
  730.     dc.w    8
  731.     dc.w    0
  732.  
  733. fontname:    dc.b    'topaz.font',0
  734. even
  735. dosbase:    dc.l    0
  736. outhandle:    dc.l    0
  737. dosname:    dc.b    'dos.library',0
  738.         even
  739.  
  740. help:    
  741.     dc.b    $a
  742.     dc.b    $9b,"0;33;40m"
  743.     dc.b    'MemSearch V1.01'
  744.     dc.b    $9b,"0;31;40m"
  745.     dc.b    ' - by Orlando Budelacci, May 1990, Public Domain.',$a
  746.     dc.b    'Bitplane memory allocated from $'
  747. madr:    dc.b    '00000000 to $'
  748. madr2:    dc.b    '00000000',$a,$a
  749.     dc.b    '<Return>'
  750. helpend:
  751.  
  752.  
  753. ; **** Datas for the Help page ****
  754.  
  755. helptext:
  756. dc.b    0,0,$c,$a,$a
  757. dc.b    'F1 to F5 = Different speeds (slow to fast)',$a
  758. dc.b    'F6 = LoRes',$a
  759. dc.b    'F7 = HiRes',$a
  760. dc.b    'F8 = Go to $20000',$a
  761. dc.b    'F9 = Go to $65000',$a
  762. dc.b    'FA = Change color',$a,$a
  763. dc.b    'Left Alt   = Decrease modulo',$a
  764. dc.b    'Left Amiga = Increase modulo',$a
  765. dc.b    'Left Shift = Reset modulo',$a
  766. dc.b    'Cursor Keys= Change address position',$a
  767. dc.b    'Escape     = Quit',$a
  768. dc.b    'Left Button= Quit',$a,$a
  769. dc.b    'Press <Return>'
  770. helptextend:
  771.  
  772. ; *** Color routine ***
  773.  
  774. colorcount:    dc.b    0
  775. statusflag:    dc.b    1
  776.  
  777. ; *** Datas for modulo change routine ***
  778.  
  779. modcounter:    dc.w    0
  780. modcounter2:    dc.w    0
  781. endflag:    dc.b    0
  782.  
  783. nd:
  784.